// vue components  列表数据字段名对应 Remark
const layout = import('@/layout/index.vue') // 外层框架
const layoutMain = import('@/views/layoutMain.vue') // 嵌套路由，空的外层框架
const home = import('@/views/Home.vue') // 工作台
const iframebi = import('@/views/iframe/BI.vue') // iframe BI
const iframeMain = import('@/views/iframe/index.vue') // iframe 嵌套的公用组件
const notFound = import('@/views/404.vue') // 404

// 预约中心
// 登记预约
const hisapply = import('@/views/appointCenter/apply.vue') // 检查预约
const hisApplyCancel = import('@/views/appointCenter/applyHIS.vue') // 取消申请单

// 预约维护
const rulessetting = import('@/views/appointMaintain/rulesSetting/index.vue') // 规则设置
const hismanagement = import('@/views/appointMaintain/HIS/index.vue') //
const timeset = import('@/views/appointMaintain/timeSet/timeset.vue') // 预约时段
const checkroom = import('@/views/appointMaintain/checkRoom/index.vue') // 检查机房
const formTableViewTest = import('@/views/appointQuery/formTableViewTest/index.vue') // 模板测试

// 统计报表
const statement = import('@/views/statistics/statement.vue') // 统计报表
const chartAppointmentDep = import('@/views/statistics/chartAppointmentDep.vue') // 预约部门统计图表
const chartAppointmentRoom = import('@/views/statistics/chartAppointmentRoom.vue') // 预约机房统计图表
const tableAppointmentDep = import('@/views/statistics/tableAppointmentDep.vue') // 部门预约统计列表
const tableAppointmentRoom = import('@/views/statistics/tableAppointmentRoom.vue') // 机房预约统计列表
const tableAppointmentSource = import('@/views/statistics/tableAppointmentSource.vue') // 预约来源统计列表
const tableAppointmentSourceDetail = import('@/views/statistics/tableAppointmentSourceDetail.vue') // 预约来源统计明细
const tableApplyDep = import('@/views/statistics/tableApplyDep.vue') // 申请科室统计列表
const tableApplyDoctorArea = import('@/views/statistics/tableApplyDoctorArea.vue') // 申请医生统计列表
const tableApplyDoctorDep = import('@/views/statistics/tableApplyDoctorDep.vue') // 申请医生统计列表
const tablePatientType = import('@/views/statistics/tablePatientType.vue') // 患者类型统计列表
const tablePartCheckTime = import('@/views/statistics/tablePartCheckTime.vue') // 部位检查时间统计列表
const tabledepmodalityavgtime = import('@/views/statistics/tableDepModalityAvgTime.vue') // 部位设备平均时间统计列表
const tablemodalityworkload = import('@/views/statistics/tableModalityWorkLoad.vue') // 设备工作量统计列表
const tablemodalitypattypeworkload = import('@/views/statistics/tableModalityPatTypeWorkLoad.vue') // 设备患者类型工作量统计列表
const tableappointmentinfo = import('@/views/statistics/tableAppointmentInfo.vue') // 检查设备机房预约统计
const tableappointmentoper = import('@/views/statistics/tableAppointmentOPER.vue') // 门诊急诊预约统计
const tableappointmentrate = import('@/views/statistics/tableAppointmentRate.vue') // 部门临床预约率统计
const tablebedsidedynamicecg = import('@/views/statistics/bedsideDynamicECG.vue') // 床边动态心电查询报表
const regdoctorworkload = import('@/views/statistics/registerDoctorWorkload.vue') // 登记人员工作量统计
const checkroomappointment = import('@/views/statistics/checkRoomAppointment.vue') // 预约情况统计

// 系统管理
const management = import('@/views/system/management.vue') // 系统管理
const checkProject = import('@/views/system/checkProject.vue') // 数据字典列表
const dictionary = import('@/views/system/dictionary/index.vue') // 系统管理
const hospitalmanage = import('@/views/system/hospitalmanage/index.vue') // 医院管理
const roommanage = import('@/views/system/roommanage/index.vue') // 机房管理
const ipmanage = import('@/views/system/ipmanage/index.vue') // 客户端参数管理
const messagemanage = import('@/views/system/messagemanage/index.vue') //医院权限

// 业务维护
const maintain = import('@/views/business/maintain/index.vue') // 业务
const blacklistManage = import('@/views/business/blacklistManage/index.vue') // 黑名单管理
const blackruleManage = import('@/views/business/blackRuleManage/index.vue') // 黑名单规则管理
const imageMaintain = import('@/views/business/imageMaintain/index.vue') //影像号维护
const accessMaintain = import('@/views/business/accessMaintain/index.vue') //访问号维护
const logManage = import('@/views/business/logManage/index.vue') //日志管理
const reservationMaintain = import('@/views/business/reservationMaintain/index.vue') //预约单管理
const dataAccess = import('@/views/business/dataAccess/index.vue') //数据权限
const hospitalAccess = import('@/views/business/hospitalAccess/index.vue') //医院权限

// 排班管理
const schedulesetting = import('@/views/scheduling/schedulsetting/index.vue') // 排班设置
// const schedulemanage = import('@/views/scheduling/manage/index.vue') // 排班管理
const schedulemanage = import('@/views/scheduling/manage/schedulelist.vue') // 排班管理
const scheduletemplatelist = import('@/views/scheduling/manage/templatelist.vue') // 排班模板管理
const appointmentlist = import('@/views/scheduling/manage/appointmentlist.vue') // 预约时段列表
const schedulepublish = import('@/views/scheduling/publish/index.vue') // 预约排班表
const limitappointment = import('@/views/scheduling/limit/index.vue') // 限制号源查询
const rostering = import('@/views/scheduling/rostering/index.vue') // 排班查询
const intragroup = import('@/views/scheduling/rostering/intragroupNew.vue') // 排班设置

// 预约查询
const appointmentTemplist = import('@/views/scheduling/manage/appointmentTemplist.vue') // 模板时段列表
const operationRecords = import('@/views/appointQuery/operationRecords/index.vue') // 操作记录
const sourceEnquiry = import('@/views/appointQuery/sourceEnquiry/index.vue') // 预约来源查询
const reservationList = import('@/views/appointQuery/reservationList/index.vue') // 预约情况列表
const schedulingInquired = import('@/views/appointQuery/schedulingInquired/index.vue') // 可预约时段查询

// 监听管理
const appointmentInfo = import('@/views/monitor/appointmentInfo/index.vue') // 监听预约记录
const appointmentDay = import('@/views/monitor/appointmentDay/index.vue') // 监听预约天数
const problemInfo = import('@/views/monitor/problemInfo/index.vue') // 问题反馈

function look(n) {
  switch (n) {
    case 'home':
      return home
    case 'layout':
      return layout
    case 'layoutmain':
      return layoutMain
    case 'iframebi':
      return iframebi
    case 'iframemain':
      return iframeMain

    case 'rulessetting':
      return rulessetting
    case 'timeset':
      return timeset
    case 'checkroom':
      return checkroom
    case 'hismanagement':
      return hismanagement

    case 'statement':
      return statement
    case 'chartappointmentdep':
      return chartAppointmentDep
    case 'chartappointmentroom':
      return chartAppointmentRoom
    case 'tableappointmentdep':
      return tableAppointmentDep
    case 'tableappointmentroom':
      return tableAppointmentRoom
    case 'tableappointmentsource':
      return tableAppointmentSource
    case 'tableappointmentsourcedetail':
      return tableAppointmentSourceDetail
    case 'tableapplydep':
      return tableApplyDep
    case 'tableapplydoctorarea':
      return tableApplyDoctorArea
    case 'tableapplydoctordep':
      return tableApplyDoctorDep
    case 'tablepatienttype':
      return tablePatientType
    case 'tablepartchecktime':
      return tablePartCheckTime
    case 'tabledepmodalityavgtime':
      return tabledepmodalityavgtime
    case 'tablemodalityworkload':
      return tablemodalityworkload
    case 'tablemodalitypattypeworkload':
      return tablemodalitypattypeworkload
    case 'tableappointmentinfo':
      return tableappointmentinfo
    case 'tableappointmentoper':
      return tableappointmentoper;
    case 'tableappointmentrate':
      return tableappointmentrate
    case 'tablebedsidedynamicecg':
      return tablebedsidedynamicecg
    case 'regdoctorworkload':
      return regdoctorworkload
    case 'checkroomappointment':
      return checkroomappointment
    case 'management':
      return management
    case 'checkproject':
      return checkProject
    case 'dictionary':
      return dictionary
    case 'hospitalmanage':
      return hospitalmanage
    case 'roommanage':
      return roommanage
    case 'ipmanage':
      return ipmanage
    case 'messagemanage':
      return messagemanage

    case 'hisapply':
      return hisapply
    case 'hisApplyCancel':
      return hisApplyCancel
    case 'maintain':
      return maintain
    case 'schedulesetting':
      return schedulesetting
    case 'schedulemanage':
      return schedulemanage
    case 'appointmentlist':
      return appointmentlist
    case 'scheduletemplatelist':
      return scheduletemplatelist
    case 'schedulepublish':
      return schedulepublish
    case 'limitappointment':
      return limitappointment
    case 'rostering':
      return rostering
    case 'intragroup':
      return intragroup

    case 'appointmenttemplist':
      return appointmentTemplist
    case 'operationrecords':
      return operationRecords

    case 'sourceenquiry':
      return sourceEnquiry
    case 'reservationlist':
      return reservationList
    case 'schedulinginquired':
      return schedulingInquired
    case 'blacklistmanage':
      return blacklistManage
    case 'blackrulemanage':
      return blackruleManage
    case 'imagemaintain':
      return imageMaintain
    case 'accessmaintain':
      return accessMaintain
    case 'logmanage':
      return logManage
    case 'reservationmaintain':
      return reservationMaintain
    case 'formtableviewtest':
      return formTableViewTest
    case 'dataaccess':
      return dataAccess
    case 'hospitalaccess':
      return hospitalAccess

    case 'appointmentinfo':
      return appointmentInfo
    case 'appointmentday':
      return appointmentDay
    case 'probleminfo':
      return problemInfo

    default:
      return notFound
  }
}

export default (name) => () => look(name)
